本篇文章同步發布於 Python 將 pandas 的 DataFrame 輸出到 Excel 檔案【Python 處理 Excel #17】
系列文《30 天學會用 Python pandas 和 openpyxl 處理 Excel》從前期使用 Python pandas 讀取 Excel 檔案、對 DataFrame 資料進行處理,到這篇文章開始進入「輸出檔案」的階段。這篇文章分享將 DataFrame 輸出為 Excel 檔案的兩種方式。
在開始之前,需要先確認已經安裝 pandas 和 openpyxl 這兩個套件。
如果還沒有安裝這兩個套件,可以用以下指令安裝:
pip install pandas openpyxl
to_excel
是 pandas 內建的一個方法,可以直接將 DataFrame 輸出到 Excel 檔案。
to_excel
方法的基本語法如下:
DataFrame.to_excel(excel_writer, sheet_name='Sheet1', index=True)
Sheet1
。True
。下方是一個使用 to_excel
方法的簡單案例:
import pandas as pd
# 讀取 Excel 檔案
df = pd.read_excel('input.xlsx')
# 對 DataFrame 進行一些操作
# 例如:過濾數據、計算統計值或變更欄位名稱等
# 這裡省略具體的程式碼
# 將 DataFrame 輸出為 Excel 檔案
df.to_excel('output.xlsx', index=False)
'output.xlsx'
指定輸出檔案的名稱。index=False
表示不輸出 DataFrame 的索引,否則會包含額外的列索引。程式 Debug 的過程中,我會用 pandas 的 to_excel 方法快速輸出 Excel 檔案查看內容,但如果需要對輸出的 Excel 檔案進行比較細緻的設定,我會選擇使用 openpyxl 輸出 Excel 檔案。
下方是使用 openpyxl 輸出 Excel 檔案的例子:
import pandas as pd
from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
# 讀取 Excel 檔案
df = pd.read_excel('input.xlsx')
# 對 DataFrame 進行一些操作
# 例如:過濾數據、計算統計值或變更欄位名稱等
# 這裡省略具體的程式碼
# 建立活頁簿
wb = Workbook()
ws = wb.active
# 使用 dataframe_to_rows 將 DataFrame 轉換為逐列的數據
for row in dataframe_to_rows(df, index=False, header=True):
ws.append(row)
# 儲存結果為 Excel 檔案
wb.save('output.xlsx')
Workbook
類別和 dataframe_to_rows
函數。Workbook
用於建立新的 Excel 活頁簿,而 dataframe_to_rows
用於將 DataFrame 轉換為列資料,以便後續寫入 Excel 檔案。wb
。這個活頁簿是空白的,可以用來添加數據和工作表。ws
。在新建立的活頁簿中,預設的活躍工作表是第一個工作表。index=False
表示不包含列索引,header=True
表示用 DataFrame 的欄位名稱作為 Excel 工作表的欄位名稱。dataframe_to_rows
回傳的每一列。ws
中。append
方法將指定的列數據添加到工作表的末端,這表示每次調用 append
方法時,數據將被追加到工作表的下一個空白的列。因為是在迴圈中執行 append
方法,DataFrame 的數據就逐列被寫入 Excel 檔案的工作表中。output.xlsx
的檔案。to_excel
方法將 DataFrame 輸出為 Excel 檔案。dataframe_to_rows
函數和 append
方法能逐列將 DataFrame 資料寫入 Excel 檔案。本篇文章同步發布於 Python 將 pandas 的 DataFrame 輸出到 Excel 檔案【Python 處理 Excel #17】